home *** CD-ROM | disk | FTP | other *** search
-
- Listing 5 -- system.c
-
- /* system function -- UNIX version */
- #include <stdlib.h>
-
- /* UNIX system calls */
- int _Execl(const char *, const char *, ...);
- int _Fork(void);
- int _Wait (int *);
-
- int (system)(const char *s)
- { /* send text to system command line processor */
- if (s)
- { /* not just a test */
- int pid = _Fork();
-
- if (pid < 0)
- ; /* fork failed */
- else if (pid == 0)
- { /* continue here as child */
- _Execl("/bin/sh", "sh", "-c", s, NULL);
- exit(EXIT_FAILURE);
- }
- else /* continue here as parent */
- while (_Wait(NULL) != pid)
- ; /* wait for child */
- }
- return (-1);
- }
-
-
-
-